1. Technical Field
The present invention relates in general to a system and method for an asymmetric heterogeneous multi-threaded operating system. More particularly, the present invention relates to a system and method for an operating system to schedule a plurality of tasks for execution on a plurality of heterogeneous processors.
2. Description of the Related Art
Computer systems are becoming more and more complex. The computer industry typically doubles the performance of a computer system every 18 months (i.e. personal computer, PDA, gaming console). In order for the computer industry to accomplish this task, the semiconductor industry produces integrated circuits that double in performance every 18 months. A computer system uses integrated circuits for particular functions based upon the integrated circuits' architecture. Two fundamental architectures are 1) a microprocessor-based architecture and 2) a digital signal processor-based architecture.
An integrated circuit with a microprocessor-based architecture is typically used to handle control operations whereas an integrated circuit with a digital signal processor-based architecture is typically designed to handle signal-processing manipulations (i.e. mathematical operations). As technology evolves, the computer industry and the semiconductor industry are using both architectures, or processor types, in heterogeneous computer system designs.
A processor typically provides a trusted mode environment for an operating system to run. This environment allows the operating system to schedule multiple tasks in order of importance without concern of one task accidentally overwriting another task. In a trusted mode environment, an operating system uses a task scheduler and a run queue to schedule tasks in order of importance. A trusted mode environment, however, impacts a processor's performance due the trusted mode's inherent overhead.
One approach to increase a processor's performance is to remove the trusted mode overhead, thereby not providing a trusted mode environment. A challenge found with a processor that does not provide a trusted mode environment, however, is that the processor may not be used reliably to run multiple tasks because one task may overwrite another task.
In a heterogeneous processor environment, it is likely that multiple tasks run simultaneously. Therefore, each processor typically provides a trusted mode environment which, in turn, decreases the performance of each processor. A challenge found, therefore, is removing trusted mode overhead in order to optimize the performance of a processor in a heterogeneous processor environment.
What is needed, therefore, is a system and method for removing trusted mode overhead on a processor to increase the processor's performance while still providing the security of a trusted mode environment on the processor.